abstract type member